package demo05.FactoryPattern.storeImp;

import demo05.FactoryPattern.pizzaImp.Pizza;

/**
 * 抽象的产品创建者类（与产品类是平级的）
 * 工厂方法：通过继承
 * 抽象工厂：提供一个接口，用于创建相关或依赖对象的家族而不需要明确指定具体类。
 *        定义一组负责创建一组产品的接口，负责创建具体的产品。通过多项的组合实现。
 * */
public abstract class PizzaStore {
	//供子类具体实现的抽象方法用于创建产品（通用方法）
	protected abstract Pizza createPizza(String item);
	 
	public Pizza orderPizza(String type) {
		Pizza pizza = createPizza(type);
		System.out.println("--- 正在制作一个 " + pizza.getName() + " ---");
		pizza.prepare();
		pizza.bake();
		pizza.cut();
		pizza.box();
		return pizza;
	}
}
